\chapter{M\'ethodes, outils, r\`egles, normes}
\label{chap:methodes.outils.regles.normes}
\minitoc


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{M\'ethodes}
\label{sec:methodes}
La m\'ethodologie UML sera utilis\'ee pour toutes les phases d'analyse de ce projet. Les tests seront pr\'epar\'es pendant les premi\`eres \'etapes du projet,
 \`a savoir :
\begin{itemize}
 \item Analyse des besoins : Pr\'eparation des tests d'acceptation
 \item Sp\'ecifications externes : Pr\'eparation des tests syst\`emes
 \item Conception globale : Pr\'eparation des tests d'int\'egration
 \item Conception d\'etaill\'ee : Pr\'eparation des tests unitaires
\end{itemize}


Ces tests devront \^etre pr\'epar\'es au fur et \`a mesure de l'avancement du projet.
%-------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Outils}
La liste suivante r\'ecapitule les outils qui seront utilis\'es dans le cadre de ce projet :

\begin{enumerate}
 \item \'Editeur de texte - Open Office Writer, MS Word, Kile, \LaTeX
 \item Sch\'ema - Open Office Draw, Dia
 \item Pr\'esentation - Open Office Impress, MS PowerPoint
 \item Environnement de d\'eveloppement - Eclipse, Flex Builder
 \item Serveur - JOnAS
 \item Gestion de projets - Gantt Project
 \item Tests unitaires - JUnit
 \item Tests IHM - Navigateur quelconque
\end{enumerate}


%-------------------------------------%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{R\`egles et normes \`a respecter}
\label{sec:regles.normes.respecter}

\subsection{R\`egles de pr\'esentation}
Tous les documents li\'es \`a ce projet devront respecter un m\^eme mod\`ele : 
\begin{itemize}
 \renewcommand{\labelitemi}{$\bullet$} 
\item page de titre \begin{itemize}
                      \item Nom du projet
		      \item Nom du document
		      \item \'Equipe, ma\^itre de stage, consultant, client
		    \end{itemize}
\item page de garde \begin{itemize}
		      \item La gestion des versions du document
		      \item L'historique des modifications du document
                     \end{itemize}
 \item pages suivantes \begin{itemize}
			\item Cartouche d'en-t\^ete : Nom du chapitre, num\'ero de page
			\item Pied de la page : Nom du document
                       \end{itemize}
\end{itemize}

%-------------------------------------%
\subsection{R\`egles de programmation}
Le syst\`eme sera d\'evelopp\'e en langage Java. Nous adopterons donc les r\`egles qui s'y appliquent, notamment : 
\begin{itemize}
 \renewcommand{\labelitemi}{$\bullet$} 
\item En en-t\^ete de classe :
\begin{itemize}
 \item Date de cr\'eation de la classe
 \item Auteur
\end{itemize}
 \item Pour chaque m\'ethode :
\begin{itemize}
 \item Description succincte de la m\'ethode
 \item Description des param\`etres utilis\'es
 \item Description de la valeur de retour - Javadoc
\end{itemize}
 \item Convention de nommage :
\begin{itemize}
\item Le nom d'une classe commence par une majuscule. Si ce nom est lui-m\^eme compos\'e de plusieurs noms, chacun d'entre eux commence par une 
majuscule. Les autres lettres sont en minuscules.
Exemple : 
\begin{lstlisting}[language=Java]
public class MyClass ( ) { }
public class TypeMyClass () { }
\end{lstlisting}
\item Le nom d'une m\'ethode ou d'une variable commence par une minuscule. Si ce nom est lui-m\^eme compos\'e de plusieurs noms, chacun d'entre eux 
commence par une majuscule. Les autres lettres sont en minuscules. 

Exemple : 
\begin{lstlisting}[language=Java]
public void init () {}
public void doSomething {}
\end{lstlisting}
 \item Le nom des variables doit \^etre significatif pour une meilleure compr\'ehension du code.
\end{itemize}
 \end{itemize}

\vspace{4pt}

Le respect de ces r\`egles de programmation devra \^etre v\'erifi\'e \`a l'aide de CheckStyle (plugin Eclipse). Un minimum d'avertissements devra \^etre 
pr\'esent. Aucun seuil n'est fix\'e car certaines erreurs de CheckStyle n'ont pas un grand impact sur le style de programmation mais n\'ecessite par 
contre un grand investissement en temps. 
Il s'agira donc de r\'eduire au maximum le nombre d'avertissements en perdant un minimum de temps. 

%-------------------------------------%

%\subsection{Normes sur les comptes-rendus de r\'eunions}
%Chaque audit donnera lieu \`a la r\'edaction d'un compte-rendu. Celui-ci se compose de la mani\`ere suivante : ''nom-jour-moi-annee``. 

% \begin{itemize}
% \item nom : nom de  la r\'eunion
% \item jj : le num\'ero du jour sur 2 chiffres
% \item mois : le num\'ero du mois sur 2 chiffres
% \item aa : le num\'ero de l'ann\'ee sur 2 chiffres
% \end{itemize}


% Par exemple, le compte-rendu de l'audit du 15 mars 2009 serait nomm\'e : ''audit-15-03-09``. 


%-------------------------------------%

\subsection{Normes sur les documents livrables}
Chaque document poss\`ede un num\'ero de version de la forme x.y.
Tout incr\'ement du premier indice (x) implique un changement notoire du document. Tout incr\'ement du second indice (y) implique une modification 
minime du document. 

%-------------------------------------%

% \subsection{Normes sur les fiches de relecture}
% Chaque diffusion d'un document donne lieu \`a une relecture et au remplissage d'une fiche de relecture. Celle-ci se compose de la mani\`ere suivante :
% ''nomDocAssoci\'e-Relecteur-Date``.

% \begin{itemize}
% \item 
% nomDocAssoci\'e : Le nom du document abr\'eg\'e associ\'e \`a la fiche de relecture
% \item
% Relecteur : Le nom du relecteur
% \item
% Date : La date de cr\'eation de la fiche
% \end{itemize}
% Par exemple, la fiche de relecture associ\'ee au Plan d'Assurance Qualit\'e (PAQL) cr\'eer par  Aaa Bbb le 10 Mars 2009 sera nomm\'ee : 
% ''PAQL-Bbb-10032009``. Un mod\`ele de fiche est fourni : ''Modele-fiche-relecture`` ainsi qu'une fiche explicative annexe : 
% ''PAQL-Fiche-relecture``.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



% Un peu de code :
% \begin{lstlisting}[language=Java]

% package org.ow2.jasmine.monitoring.installer;

% public class Main {
	
% public static void main(String[] args) {
        
%         new GenerateDP(args);
% 		//new GenerateDP();
%         /*for (String s : args)
%         	System.out.println("Arg "+s);*/
%         new GenerateES(args);
    	
%     }

% }

% \end{lstlisting}
%end chapter2.tex